package DesInterface;

import java.awt.Toolkit;

import javax.swing.text.AttributeSet;
import javax.swing.text.BadLocationException;
import javax.swing.text.DocumentFilter;
import javax.swing.text.DocumentFilter.FilterBypass;

/**
 * Classe permetant de filtrer un champ selon sa taille
 * @author marie, margaux
 */
class DocumentSizeFilter extends DocumentFilter {
	
	/**
	 * Le nombre maximum de caracteres
	 */
	int maxCharacters;
	
	/**
	 * Constructeur
	 * @param maxChars le nombre maximum de caracteres
	 */
	public DocumentSizeFilter(int maxChars) {
		maxCharacters = maxChars;
	}
	
	public void insertString(FilterBypass fb, int offs, String str, AttributeSet a) throws BadLocationException {
		if ((fb.getDocument().getLength() + str.length()) <= maxCharacters)
			super.insertString(fb, offs, str, a);
		else 
			Toolkit.getDefaultToolkit().beep();
	}
	
	public void replace(FilterBypass fb, int offs, int length, String str, AttributeSet a) throws BadLocationException {
		
		if ((fb.getDocument().getLength() + str.length()- length) <= maxCharacters)
			super.replace(fb, offs, length, str, a);
		else
			 Toolkit.getDefaultToolkit().beep();
	}

	
}